System and method for semantic search

ABSTRACT

Systems and methods for semantic search are provided. A corpus of information grouped into passages are indexed by semantic key terms generated from packed knowledge representations that document the semantic relationships of information within those passages. When a search is conducted, a query is similarly transformed into a packed knowledge representation that documents the semantic relationships from which semantic key terms are also generated. An inverted index relating the semantic key terms associated to the passages is searched using the semantic key terms generated from the query. A set of candidate passages is selected and refined by analysis of the semantic key terms and other information. The semantic representations associated with the set of candidate passages are then matched to the semantic representation of the query to determine a search result set.

FIELD

This application relates in general to information retrieval in acomputer environment and, in particular, to a system and method forindexing and searching information.

BACKGROUND

Electronic data is being created and recorded in staggering amounts asour world becomes increasingly computerized. Unfortunately, findingparticular data within discrete data sets becomes increasingly difficultas the amount of data grows. Efficiently searching for relevant data,whether in databases or in distributed environments such as the WorldWide Web (the “Web”) typically includes accessing one or more electronicindexes. In many computing environments, the index is created andmaintained by commercially available database products. In the contextof the Web, indexes are created and maintained by a variety of SearchEngines accessible via the Internet. The challenge in most environmentsis keeping the indexes current—reflecting the data as the data is added,removed and updated in the environment.

Inverted indexes are a type of index used in databases and searchengines for indexing many-to-many relationships. An inverted indextypically consists of a plurality of records, with each record having akey and one or more associated references. Each reference indicates thepresence of the key in the referenced material. For example, an index ofWeb pages may contain many records with a word identifier as the key anda reference to a Uniform Resource Locator (“URL”) of the Web documentthat contains the word.

Conventional indexes typically associate index “keywords” againstelectronic documents. For example, the keyword “conventional” would beassociated with this document if indexed by one of these conventionalindexing systems. The presence of a keyword in a document, however, doesnot guarantee the relevance of the document to a given search. The word“conventional” may also be associated with every other document in whichit has been used. With billions of documents in an ever expandingdigital universe, and a limited number of words used to construct thosedocuments, simple keyword searches are seem destined to bury relevantmaterials within huge piles of irrelevant materials. The problem offinding relevant materials within large datasets of irrelevant materialshas long been recognized. Various approaches have been taken to refinekeyword searches. For example, some calculate and use the proximity ofone keyword to another in a document. Another approach is to generatestatistical models associating keywords with each other.

The indexing and searching of electronic information remains one ofpreeminent challenges of our day. There is an unmet need for improvedsystems and methods for generating useful indexes and efficientlysearching those indexes to find relevant materials.

SUMMARY

A method and system for the semantic search of information is provided.Semantic index key terms are generated for information passages. Theindex key terms include one or more index key tokens generated by arules-based transform component. The index key tokens include arepresentation of a semantic relationship found in the informationpassage. A token type and other information may be appended to the indexkey token to describe the semantic relation. The index terms are indexedby an index inversion process such that the semantic index terms areassociated with information passages relevant to the semanticrelationship documented by the semantic index key term. The resultinginverted index is available for a search phase included in otherembodiments of the invention.

The search phase generates one or more query key terms that include oneor more query key tokens generated by a rules-based transform component.The query key tokens include a representation of a semantic relationshipfound in a search query, for example, a natural language text string.The query key term transform component may be identical, or similar to,the index key term transform component. The semantic relationships andconcepts indexed by the index key terms are then queried against theinverted index using a subset of the semantic relationships and conceptsof the query, as documented by the query search key terms. A set ofpassages matching the query key terms may be returned as a result set orfurther processed.

Both the index key terms and the query key terms may be generateddirectly or with reference to packed knowledge representations thatdocument the semantic relationships of information within passages, andsimilar packed knowledge representations that document the semanticrelationships of information within queries. The semantic representationof the passage may be matched with the semantic representation of thequery using a unification process before including a passage in theresult set.

Another embodiment of the invention processes a candidate retrieval setto select likely-relevant passages before incurring thecomputationally-expensive matching of semantic representations. Acandidate retrieval system and method reviews candidate passages by theanalysis of key terms and tokens. For example, a relevance score may beused to quantify the likely relevance of a passage depending thepresence and types of key tokens. The candidate retrieval system andmethod may include candidate selectors, for example, filters, thatselect the candidates to forward to match systems and methods. Heuristicsystems and methods may monitor and refine the candidate selectionprocess. The match system and method compares semantic representationsof match candidates identified by the candidate retrieval system andmethod with the semantic representation of the query. The match systemand methods may also by heuristic systems and methods to monitor andrefine the match selection process.

Embodiments of the invention may be implemented either by a discretecomputer system or in a distributed system. For example, the semanticindexing may be performed by a first system, the index placed onaccessible storage administered by a second system, the processing ofthe query into query key terms by a third system, the selection ofcandidate passages by a fourth system, the match of candidate passagesby a fifth system and the organization of a search result by a sixthsystem, or any other permutation or combination permitted by thedistributed system.

Still other embodiments will become readily apparent to those skilled inthe art, including known substitutions, alternative code structures orhardware encompassing the claimed methods and systems or any othermodification to the details of the embodiments that do not depart fromthe spirit and the scope of the claims. Accordingly, the drawings andfull content of this specification are to be regarded as illustrative innature and not as restrictively representing the only embodiments thatthe claims are intended to encompass.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of an exemplary computer system.

FIG. 2 is a block diagram of an exemplary indexing phase.

FIG. 3 is a block diagram illustrating an exemplary generation of asemantic representation.

FIG. 4 is a block diagram illustrating an exemplary transformation of asemantic representation to index terms.

FIG. 5 is an exemplary transform of a passage to index terms.

FIG. 6 is a block diagram of an exemplary key term lexicon.

FIG. 7 is a block diagram of an exemplary inverted index.

FIG. 8 is a block diagram illustrating an exemplary retrieval phase.

FIG. 9 is a block diagram illustrating an exemplary transform of a queryto index terms.

FIG. 10 is a block diagram of an exemplary candidate retrievalcomponent.

FIG. 11 is a block diagram of an exemplary candidate selector component.

FIG. 12 is a block diagram of an exemplary heuristic search tuner.

FIG. 13 is a block diagram of an exemplary match phase.

FIG. 14 is a block diagram of an exemplary match component.

DETAILED DESCRIPTION

Exemplary Computer System and Network

The block diagram shown in FIG. 1 illustrates an exemplary computersystem. A computer 100 includes a central processing unit (CPU) 102, asystem memory 104, and input/output (I/O) ports 106.

The system memory 104 includes working memory 105 and storage memory107. The working memory 105 is generally addressable by the centralprocessing unit (CPU) 102 and includes random access memory (RAM) 110.The CPU 102 can read from and write to RAM 110 at or near bus speeds.The CPU 102 can also read from, but not write to, read-only memory ROM(108), which is generally used to provide the CPU with very fast accessto non-volatile information required at start-up or during operation ofthe computer 100.

Storage memory 107 includes memory that is generally not directlyaddressable by the CPU, and is thus not available to be acted upon byprocessor instruction performed by the CPU 102 without an interveningtransfer of the information stored in the storage memory 107 to theworking memory 105. The storage memory 107 is operably connected to theworking memory 105, generally via an input/output bus (I/O) 106, suchthat information stored in the storage memory 107 can be transferred tothe working memory 105.

The system memory 104 contains a basic input/output system (BIOS) 112for administering the basic input and output between components of thecomputer, an operating system 114 for providing the basic softwareservices provided by the computer and application programs 116 thatprovide the functionality for performing specific tasks with thecomputer. Data may be stored and manipulated in the system memory 104 byany of the BIOS 112, operating system 114 and application programs 116.

The computer 100 has a display 120 for output of information and inputdevices, such as a keyboard 122, or a pointer device, such as a mouse124. Peripheral devices such as a scanner 139 or printer 137 may beattached to a computer 136 to extend the computer's abilities. Suitablecomputers include conventional mainframe computers, server computers,personal computers, notebook computers, handheld computers, personaldigital assistants, personal information managers, and hybrid devicesincorporating computer capabilities, such as cable boxes, cellulartelephones, and pagers.

The computer may be connected to a local area network (LAN or intranet)126 through a network connector 128 or through a modem 130. A LAN 126includes a server computer 132 and a plurality of client computers 134,which are all functionally similar to computer 100. The computer 100 orthe LAN 126 may be connected to other computers 136 or other networks138 through a communication network 141 to form a wide area network(WAN). The Internet is an example of a large scale WAN that connectstogether many computers 100.

Server computers 140 (functionally similar to computer 100 but generallymore powerful) store application programs 116 and data 118 that arecommunicated to other computers for instance, 100, 134 and 136,connected to a network. In some cases, server computers 140 areinterconnected to form parallel processing networks. These networks aredesigned to process applications concurrently by dividing tasks amongthe various server computers and combining results. The dividing,processing and combining of results may be accomplished many times whilean application runs.

Exemplary Search Environment

A typical search environment can consist of large numbers of electronicdocuments all or any part of which may be defined as a corpus. Anelectronic document, Web document or simply, “document,” includes agrouping of electronic data. A document is a grouping of electronic datapartitioned from the corpus at any level. For instance, a document maycomprise a complete Web site, a page, a paragraph, a clause, a sentence,an abstract or any granularity or combination of electronic informationdrawn from the corpus.

As used herein, discussion of a key, key identifier, key ID, keyreference, passage, passage ID, passage reference term, term identifier,term ID, term reference or similar language should be considered to beinterchangeable in the various embodiments unless otherwise specificallylimited. The same breadth should be given the discussion of references,reference identifiers, reference ID, documents, document identifiers,document ID or similar language, since use of literals or identifiersmay be considered a question of memory efficiency and speed rather thana requirement of any method or system described.

One commonly indexed domain is the Web. The Web includes many billionsof electronic documents or “Web documents”, each of which represents agrouping of data identified by a Uniform Resource Locator (“URL”). TheURL of a Web document often serves as its document identifier. A Webdocument often includes data and meta-data. Meta-data providesinformation that describes the data and may include formattinginformation, for example, HTML or information that identifies data, forexample, XML. While many electronic documents are being standardizedaround the formats associated with the Web, many other documents arestored in proprietary formats. As described herein, the example documentcontains terms including words or phrases. However, any type ofinformation that lends itself to being indexed is intended.

A subset of documents is defined to be included in an index, such as allelectronic documents accessible to a firm's internal network. A separateor combined index may define all electronic documents accessible via theWeb. An index, therefore, has a domain that includes the documentsindexed and the type of information indexed. Typically, the indexincludes a plurality of key values that are used to “look up” referencesassociated with that key value. In the context of terms within adocument, each document in the corpus of documents is parsed for terms.If a term is contained in the document, the index should reference thatdocument when the term is queried.

Overview of Semantic Search

Semantic search systems index and retrieve information based upon theascertained meaning of information passages contained in a corpus ofinformation. In the case of written language, words are analyzed incontext, with understanding given to accepted meaning and grammar. Thissemantic analysis is preformed by natural language understandingprograms that create complex and often copious data structures that setforth the semantic relationships found in the analyzed data. At searchtime, natural language queries are translated into similar datastructures. Relevant data is retrieved from the corpus of information bycomparing the data structures generated for the query against the datastructures generated for the information passages. Each of thesecomparisons is computationally expensive in terms of the relative amountof computer resources that are required to perform each comparison.Efficient and accurate methods and systems that pre-select datastructures that are likely to be relevant to the query would be highlydesirable given the large amount of data included in each data structureand the potentially enormous number of data structures that must begenerated to index a corpus of information.

Supporting methods and systems for semantic search are described in aco-pending and commonly assigned US patent application by Richard S.Crouch, et al., Systems And Methods For Detecting Entailment AndContradiction, attorney docket number 20060268-US-NP-311317, filed onMay 1, 2006, the full specification and drawings of which areincorporated by reference (hereinafter “Crouch”).

For the purpose of simplifying the description to follow, the methodsand systems of the present invention are described in three phases. Themethods employed or components described within these phases are notintended to suggest or imply that they can or do occur only in thatphase. To the contrary, it will be apparent that some of the systems andmethods described are used in several of the phases and no limitation totheir use is intended. The present invention also includes heuristictuners that may adjust the performance of methods or systems describedin other phases through the use of learning and feedback mechanisms.

The three phases include an indexing phase, a retrieval phase and amatch phase. Broadly grouped to simplify the following discussion,during the indexing phase a corpus of information is parsed andtranslated into semantic representations. These semantic representationsare generally stored as data structures in a database for use in latercomparison with semantic representations generated for search queries. Apre-selection of the semantic representations to be compared against thesemantic representation of a search query is preformed in the retrievalphase. These pre-selected “candidate” semantic representations arematched against the semantic representation of the search query in amatch phase.

Information may be grouped in passages of varying granularity. A passagemay be of any granularity that gives context to its contents. Forexample, a passage might encompass a document, a section, a chapter, aparagraph, a sentence or a phrase. In general, the more informationcontained in a passage, the larger a semantic representation would befor that passage. The examples below will assume that a passagerepresents a short sentence in order to keep the discussion to amanageable length without obscuring the described methods and systems.However, those methods and systems are similarly applicable to passageshaving more or less information contained within them.

Indexing Phase

Turning to FIG. 2, an indexing phase 200 indexes a corpus of passages201 by obtaining each passage and forwarding the passage to a passageparser 202. The passage parser 202 parses the passage into a datastructure referred to as an f-structure. In an embodiment, the passageparser 202 is the Xerox Linguistic Environment (XLE), available fromXerox PARC of Palo Alto, Calif. A semantic representation generator 204generates a packed knowledge representation, one form of which isreferred to below as semantic representations. The semanticrepresentation generator 204 may include functions for analyzing thecontent and structure of the passage, accessing and applying linguisticresources such as an ontology, documenting potential ambiguity in theinterpretation of passages, applying rewrite rules to structure andwriting the semantic representation.

The semantic representation is then transformed into key terms by atransform component 208. Each key term is associated with a uniqueidentifier and stored in a key term lexicon 210. The key terms generatedfrom the transformation of the semantic representation are thenassociated with a reference to the source passage and stored in aposting file 212. For storage efficiency, unique identifiers associatedwith the key terms, passages and semantic representations are generallyassociated in the posting files, but the actual information may bestored as part of the posting file 212. Descriptions of the key terms,semantic representations, and passages should be read to include eitherreferences to those values or the actual values themselves.

The posting file 212 includes a plurality of postings 220. Each posting220 includes a key term 216 that is associated with a reference 218. Thereference 218 associates the passage or information derived from thepassage with the key term 216. For example, a posting 220 might includea reference to the source passage 222, a reference to the semanticrepresentation (“SemRep”) 224 derived from that semantic representationor any other useful information 226, such as a data path or link to asource document containing the passage.

Once the posting file 212 is populated with postings 220, an inversionengine 230 creates an index 240 that associates each unique key term 216with each of the references 218 that are associated with that key term216 by way of a posting 220. Any index inversion method or systempresently known or developed in the future may be used to create theinverted index. One particularly advantageous inversion method isdescribed in a co-pending and commonly-assigned patent application byRobert D. Cheslow and entitled “System and Method for Generation ofComputer Index Files,” U.S. patent application Ser. No. 11/644,039,filed on Dec. 22, 2006, which is incorporated herein in its entirety bythis reference.

FIG. 3 illustrates an exemplary semantic representation generator 204 inmore detail. A passage 310 is obtained for processing by a semanticrepresentation engine 320. The passage 310 represents a granularity ofinformation which may be contained as part of another passage 312, whichitself might belong to a document 314 or other form of a containerpassage. For example, the passage 310 is the sentence “nobody saw a manwith a telescope”. This sentence might be contained within a paragraph312 that exists within a document 314. The passage 310 might just aswell represent a phrase within the sentence.

A semantic representation 330 is generated by the semanticrepresentation engine 320. The semantic representation engine 320includes functions for analyzing the content and structure of thepassage 310, accessing and applying linguistic resources such as anontology, documenting potential ambiguity in the interpretation ofpassage 310 and applying rewrite rules to structure and write thesemantic representation 330. The semantic representation engine 320transforms the passage 310 by rules into a logical representation of aconceptual meaning of language. The resulting packed knowledgerepresentation documents deep semantic relationships. For example, thesemantic representation 330 illustrated in FIG. 3 is a packed knowledgerepresentation of the sample passage 310 “Nobody saw a man with atelescope.” The semantic representation 330 includes a plurality ofsubstructures 332 that include a semantic analysis of the passage 310.

Differing types of substructures 332 are used to the document differentsemantic relationships. For example, a role relationship substructure334 associates a seeing event (labeled as see##13) 336 with a personobject (labeled as person##10) 338. A temporal relationship substructure340 recognizes and records the seeing event 336 as having occurredbefore now. Some substructures 332 document alternative understandingswhen the passage 310 is ambiguous. The example sentence “Nobody saw aman with a telescope” can be interpreted either that a man was seen witha telescope, as recorded by substructure 342 (alternative “A1”) or thata man was seen using a telescope 344, as recorded by substructure 344(alternative “A2”).

Other substructures 350 may document lexical relationships drawn fromsemantic support resources 352 such as an ontology 354 or other sources356, such as a grammar rules database. WordNet, created and maintainedby the Cognitive Science Laboratory of Princeton University, is asemantic lexicon of the English language and is one example of anontology. WordNet groups words into sets of synonyms called synsets. Thesynsets may be organized into hierarchies specifying the relationshipsbetween words. For instance, hypernyms are more general words associatedwith the subject words or hyponyms are more specific words associatedwith the subject. The semantic representation engine 320 may draw from,interpret or modify the information from the synsets to populatesubstructures 350 of sub concepts. For example, the concept of atelescope 358 may be associated with progressively more general termssuch as a looking glass (ID 4341615) 360 or a physical object (ID 1740)362. Similarly, the semantic representation engine 320 may omit terms inthe substructure 350 that are too general to be of practical use in asearch, such as discarding the term “physical object” (ID1740) 362. Thesemantic representation engine 320 is further described in Crouch,referenced and incorporated above.

The semantic representations 330 generated by the semanticrepresentation generator 204 are stored in a semantic representationdatabase 370, where they may be associated with a unique identifier anda reference to their source passage. In addition to storage in adatabase, a semantic representation may be stored in any form ofvolatile or non-volatile memory, or generated as needed.

In FIG. 4, the transformation 400 of information into key terms isillustrated. A semantic transform component 402 obtains a packedknowledge representation 404 of an information passage for processinginto index terms 406. In an embodiment, the packed knowledgerepresentation 404 is a semantic representation 330, such as the oneshown in FIG. 3. In another embodiment, the packed knowledgerepresentation 404 is generated by the semantic transform component 402through its own interpretive routines, direct usage of semanticresources such as an ontology, or the like.

The semantic transform component 402 includes a rules-based transformprocessor 410 that draws transform rules 411 from a transform rulesdatabase 412. One or more key index terms 414 is produced to point tothe semantic representation 330 and to provide an index path to thesubject passage. Due to subtleties in the creation of the semanticrepresentations and issues with linguistic resources, among otherreasons, relevant passages may not always have index key terms thatalign in predicable ways with the query key terms generated from aquery. To improve the relevance of key terms over time, a heuristictuner component 460 interface with metrics determined in either or bothof the retrieval or match phases to tune the transform rules 411. Therules are also tuned based upon empirical observations of metrics suchas search success.

Transform rules 411 are stored in the transform rules database 412 suchthat they may be added, deleted or edited over time to improveperformance. Examples of transform rules include: rules to identify andindex particular terms 420, like proper names; identify and extractsynonyms to the terms used in the passage or query 422; identify andextract hypernyms to the actual terms used in the passage or query 424;identify and associate the grammatical role of terms in the passage 426;identify and associate the word sense of the term 428; or associate anyother linguistic identifier 430, such as those that might be availablefrom an ontology or other linguistic resource. A transform rule 411 mayalso cause the generation of index terms 414 based on other thanstrictly linguistic information. For example, expansion rules 432 couldgenerate key terms based on logical associations, such as substitutingnicknames for entities (“Big Blue” for “IBM”) or colloquialisms for moreformal terms. Other transform rules 434 are expected to be developed asthe heuristics are analyzed and experience develops.

An example of the generation of index key tokens 502-504 for a samplepassage 506 is illustrated in FIG. 5. The sample passage 506 is “the mangave a dog a bone.” This sentence is translated to a semanticrepresentation 501, which includes a number of substructures 510. Thesubstructures 510 set forth a semantic analysis of the sample passage506. So as not to obscure the explanation, only a few of the possiblesubstructures 510 are illustrated. The substructures 510 illustratesdocument semantic “roles” and “concepts” from among many other possiblesemantic relationships. For example, “man” is recognized in onesubstructure 512 as the subject of the sentence, a second substructure514 documents the direct object of the sentence as “bone” and a thirdsubstructure 516 identifies the “dog” as the indirect object of thesentence. The “concept” substructures 518-522 expand these objects intolists of related concepts, in this case organized as sets of hypernyms,or progressively more general synonyms for the term. For example, theconcept of a “man” might otherwise be described in a conceptsubstructure 518 as a “person,” an “animal,” or an “agent.” The sametype of expansion is possible for a “bone” concept substructure 520 or aconcept substructure 522 for “dog.”

Two of the many possible transform rules 520-532 are shown in FIG. 5.These transform rules 530 are used by transform engine 540 to generateindex key tokens 502-504. The examples provided for these transformrules 530-532 take the form of rewrite rules. These rewrite rulestranslate and format information from the substructures 510 into indexterms that can be used as unique keys in an index file 560. The samesubstructures 510 can serve as the input for multiple transform rules530-532, which produce different index key tokens 502-504 from the sameinformation.

A transform rule 530 presents the example “subject(x),direct_object(y)=>“sb_ob:<x>;<y>”, which retrieves the subject anddirect_object substructures from the semantic representation 501 andwrites the information to a canonical form. The index token includes alabel or token type and the subject information retrieved from thesubstructures. Examples of a resulting index token or index term is“sb_ob:man;bone” 572, which includes the term type “sb_ob” the subjectinformation “man” and the direct object information “bone”. Thetransform engine 540 may also process an expansion of transform rule 530by generating index tokens for concepts related to the subject/directobject semantic relation by referencing the concept substructures518-522 of the semantic representation 501. For example, other key indextokens 574-576 may be generated like “sb_ob:man; edible-object” as anexpansion for “bone”, or similarly “sb_ob:animal;bone” as an expansionfor “man”. Other expanded index tokens 580 are illustrated in FIG. 5 forthis simplified example.

Alternative index key terms for the passage 506 may be advantageouslyindexed to provide alternate paths to the same passage 506 via differentpath. Transform rule 532 is an example that rewrites the subject/objectrelationship into index tokens 504 that less specifically define therelationships between the information but still represent the grammar ofthe sentence. For example, “subject(x), direct_object(y)=>“sb:<x>”,“do;<y>”, results in separate key index tokens “sb:man” 582 and“do:bone” 584 and their various expansions 586-588. The transform engine540 may also process the substructures 510 to control or otherwisefilter the generation of index key tokens 502-504. For example, thetransform engine 540 could determine the semantic distance betweenrelated terms and limit the expansion. The semantic distance betweenterms may be indicated in a list by the order of that list, with thefirst terms more closely related than the later terms in the list. Thetransform engine 540, in this example, may generate a key token 590relating “edible-object” to “bone”, while omitting key token 592expansion of “bone” to “object” as being too general to be of use duringa search.

One or more of the index key tokens 502-504 are combined to form anindex key term 560. One or more index key terms 560 may be created foreach information passage.

A key term lexicon 600 is shown in FIG. 6 and includes a plurality ofkey terms 606. The key term lexicon 600 is a database that associates“index terms” to unique identifiers, which are pointers into thepostings database. In other words, given an index term, the lexicon canreturn an address to the postings for that term. The “postings” for aterm refers to the occurrence data—all of the documents, sentences, orsub-sentential components in which the term occurs.

Index terms 602-606 are strings that encode a representation of a wordin the original document. The term may contain the actual word stringitself, or the string of a word that is linguistically related to theword (e.g. a synonym, hypernym, or hyponym) 622. It may also (orinstead) contain an identifier (a lookup key) from a lexical resource (adictionary or ontology) representing the word or some related word.

In addition, the index term may contain linguistic information about howthe word is being used in the sentence 624. This information may containthe part of speech (e.g. noun, verb, or adjective), the grammatical rolethe word plays (e.g. subject, direct object, or indirect object), andthe relationship of the index term to the original word (if it is asynonym, hypernym, hyponym, etc).

All of this information is stored in the index term 604 by concatenatingthe different string or character encoding into a single string,separated by suitable delimiters. For example, the word “man” in theoriginal document, used as a noun, serving as a direct object, might beencoded into an index term as “man:VB:N:DO”, where “man” is the originalword, “VB” denotes that the string is the word verbatim (as it appearsin the original document), the “N” denotes that it is a noun, and “DO”denotes that it serves as a direct object in the sentence.

Another index term 606 might be added with a hypernym of this word, say“person”, yielding the index term “person:VB:N:DO”. Alternatively, theword “man” might be associated with a lookup key of “1234” in someparticular lexical resource, and the index term might then be encoded as“1234:ID:N:DO”, where the “ID” denotes that “1234” is a lookupidentifier for a particular lexical resource.

In an embodiment, each key term 602-606 is a unique string that includesone or more tokens 608-618. A token 608-618 includes a type field 620, aterm or term identifier 622 and an other field 624 available for theassociation of related data or meta-data, such as the storage of metricsfor heuristic tuning. Examples of tokens 608-618 include the index keytokens 502-504 shown in FIG. 5, which may be used individually for a keyterm 602 or in various combinations to form unique strings appropriatefor an index key.

Referring to FIG. 7, an inverted index 700 contains a plurality ofrecords or “postings” 702-706. Each record represents an index entrywith a key term 708-712 that is associated with one or more references714-724. A reference includes a passage field 730, a semanticrepresentation field 732, or identifiers associated with either or both.Other information 734 may also be associated with the record, such as alink to a source document or the location of an associated passage. Inan embodiment, the semantic representation field 732 stores anidentifier used to retrieve an associated semantic representation 330from the semantic representation database 370 (FIG. 3). The passage, orreference to the passage, can be obtained from the associated passagefield 730. The passage reference may also be associated with thesemantic representation 330 stored in the semantic representationdatabase 370.

Search Phase

Passages relevant to a query are identified and returned in a searchphase. For the purposes of organizing the following discussion, thesearch phase includes a retrieval phase and a match phase. Candidatepassages are identified in the retrieval phase using key index termsgenerated for a query in a manner comparable to the generation of keyindex terms for a passage. A set of candidate passages is determined byway of relevance assessment and heuristic tuning based in part upon thetype and matching of key terms generated for both the query and thepassage. The match phase includes the relatively more computationallyexpensive matching of the semantic representation of candidate passagesagainst the semantic representation of the query. The search phasereturns references to the passages found to be relevant to the query. Asused herein, a reference to a passage may include the actual passage.

Retrieval Phase

An exemplary retrieval phase is illustrated beginning with FIG. 8. Aquery is provided to form the basis of a search. A query parser 802obtains and parses the query. In an embodiment, the query parser 802uses Xerox Linguistic Environment (XLE), to generate an f-structure. Asemantic representation generator 804 generates a packed knowledgerepresentations of the query. One form of a packed knowledgerepresentation is referred to as a “semantic representation.” Thesemantic representation generator 804 may include functions foranalyzing the content and structure of the query, accessing and applyinglinguistic resources such as an ontology, documenting potentialambiguity in the interpretation of query, and applying rewrite rules tostructure and write the semantic representation.

The exemplary semantic representation generator 204 (FIG. 3) may be usedfor the generation of both semantic references for passages and for thequery. For example, the semantic representation generator 204 mayoperate on a server computer 140 accessible to either or both theindexing and search phases. While use of the same semanticrepresentation generator 204 may more consistently translate bothpassages and queries, implying a greater chance of matches, the samesemantic representation generator need not be used for generating bothpassage and query semantic representations. For example, a semanticrepresentation generator 804 may be alternatively configured to processa query with different rules or emphasis than is used for passages.

The semantic representation of the query is then transformed into keyterms by a key term transform component 808. The generation of key termsis discussed above with reference to FIG. 4. Like the semanticrepresentation generator 204, the key term transform component 808 maybe stored on a server computer for use by either or both indexing andretrieval phases. Alternatively, the key term transform component 808may be specially configured to process queries. As the key terms aregenerated, the term lexicon 600 (FIG. 6) is accessed and the key term isadded to the term lexicon if it is not already present. A set of keyterms 810, generated from the query, is then provided to a candidateretrieval component 812. At query time, the index terms that aregenerated from the semantic representation of the query are looked up inthe inverted index/postings. Thus, the occurrence information (whereeach term occurs in the corpus) can be retrieved for each index term inthe query. By performing set operations on the occurrence information,the search engine can find only those documents that contain, forexample, at least one instance of some variant of each term in thequery. For example, if the index terms from the query include“man:VB:N:DO” and “person:VB:N:DO”, both of these terms are looked up inthe lexicon, and the postings are retrieved for both of them. The unionof the occurrences for both of these terms represent all documents (orsentences, or sub-sentential components) that contain eitherrepresentation for this particular word. This set can then beintersected with postings retrieved for other terms to find documents(or sentences, etc) that contain some variant of all terms in the query.

The candidate retrieval component 812 determines a set of retrievalcandidates by performing set operations and assigning relevance scoresto passages. The retrieval candidates are then provided to a candidateselector component 814, which filters and appraises the retrievalcandidates to produce a potential match candidate set. A heuristicretrieval tuner 816 appraises the potential match candidate set andeither provides the match candidate set 818 for the match phase oriteratively performs candidate retrieval 812-816 until an acceptable setof match candidates 818 is identified.

An example of the generation of query key tokens 902-904 for a query 906is illustrated in FIG. 9. In this simplified example, the query 906 “Aperson gave a dog a bone” is intended as a search for the sample passage506 “A man gave a dog a bone.” The sample query 906 does not duplicatethe sample passage 506, but rather expresses a similar semantic premise.The sample query is translated to a semantic representation 908 thatincludes a number of substructures 910. The substructures 910 set fortha semantic analysis of the sample query 906. From the many possiblesemantic relationships, the substructures 910 are again limited to“roles” and “concepts” in order to demonstrate possible alignment ofsome of the key index key tokens 502-504 associated with the passage 506and the key query key tokens 902-904 associated with the query 906. Inthe query, “person” is recognized in one substructure 912 as the subjectof the example sentence, a second substructure 914 documents that thedirect object of the sentence is “bone” and a third substructure 916identifies the “dog” as the indirect object of the sentence. The“concept” substructures expand these objects into lists of relatedconcepts, in this case organized as sets of hypernyms, or progressivelymore general synonym for the term. It might be helpful to note that theexpansion 518 of the term “man” from the passage yielded an index term578 equivalent to an index term 972 generated for the subject of thesample query 906.

In order to more easily demonstrate the possible alignment of key indexterms, the transform rules 930-932 are the same transform rules 530-532used to transform the sample passage 506. These transform rules 930-932are used by transform engine 940 to generate query key tokens 902-904.The transform rules 930-932, for example, are rewrite rules thattranslate and format information from the substructures 910 into indexterms that can be used as unique keys for querying against the indexfile 700. As indicated by the example transform rules, the samesubstructures 910 can serve as the input for multiple transform rules930-932 that produce different query key tokens 902-904 from the samesemantic relationships. One or more of the query key tokens 902-904 arecombined to form an query key term 960. One or more index key terms 960may be created for each query.

A transform rule 930 presents the example “subject(x),direct_object(y)=>“sb_ob:<x>;<y>”. This example transform rule retrievessubject and direct object substructures from the semantic representation908 and writes the information into a canonical form. Each key tokenincludes a label or token type and the subject information retrievedfrom the substructures. Examples of a resulting index token is“sb_ob:person;bone” 972, which includes the term type “sb_ob” thesubject information “person” and the direct object information “bone”.The transform engine 940 may also process an expansion of transform rule930 by generating index terms for concepts related to the subject/directobject semantic relation by referencing the concept substructures918-922 of the semantic representation 908. For example, key indextokens 974-976 may be generated as “sb_ob:person; edible-object” as anexpansion for “bone”, or similarly “sb_ob:animal;bone” as an expansionfor “person”. Other expanded index tokens 980 are illustrated in FIG. 9for this simplified example.

Alternative index terms for related information may be advantageouslygenerated for the query to improve the chances of a match with relevantindexed passages. Transform rule 932 is an example that rewrites thesubject/object relationship into index tokens 904 that less specificallydefine the relation between the information but still indicates thegrammar of the sentence. For example, “subject(x),direct_object(y)=>“sb:<x>”, “do;<y>”, results in separate key indextokens “sb:person” 982 and “do:bone” 984 and their various expansions986-988. The transform engine 940 may also process the substructures 910to control or otherwise filter the generation of key tokens 902-904. Forexample, the transform engine 940 could determine the semantic distancebetween related terms and limit the expansion. The semantic distancebetween terms may be indicated in a list by the order of that list, withthe first terms more closely related than the later terms in the list.The transform engine 940, in this example, may generate a key token 990relating “edible-object” to “bone”, while omitting the key token 992expansion of “bone” to “object” as being too general to be of use duringa search.

The candidate retrieval component 812 is described in more detail withreference to FIG. 10. A record retrieval component 1002 queries theinverted index 700 (FIG. 7) for records containing, the key tokens902-904 generated for the query 906. The key tokens 902-904 used in theretrieval may be a subset of those key terms determined by the candidateretrieval component 812 through a heuristic tuning process or as part ofthe iterative retrieval process. The record retrieval component 1002returns a result set 1004 for each key term retrieved from the invertedindex 700.

A logical set operations component 1006 performs logical set operationson the result set 1004 obtained for the retrieved key tokens 902-904.For example, result sets 1004 returned for two or more key tokens902-904 may be intersected to determine the association of multiple keyterms with a passage. Set operations may also be performed against anydata or meta-data associated with the query key tokens 902-904 or indexrecords 702-706 associated with the result set 1004.

The results of the set operations 1008 are used by a results scoringcomponent 1010 to score the results obtained from the index retrieval.The results scoring component 1010 includes a relevance analysiscomponent 1012 and a relevance rules database component 1014. Therelevance analysis component 1012 applies scoring rules 1012-1016 fromthe relevance rules database component 1014. Part of this analysis mayinclude drawing inferences from the results of the set operations. Forexample, a rule 1016 finding a plurality of query key tokens 902-904corresponding to index key tokens 502-504 might support an inferencethat the passage possesses relevant semantic concepts, in relevantsemantic roles, all within the same passage. Another example of a resultscoring rule 1018 assigns weighted scores based upon the types of searchterms that are present in each passage. For instance, a key term thatrepresents a corresponding proper name may be weighted highly, while akey term that represents a distant hypernym may be weighted with arelatively lower score. Other rules 1020 may be added to the relevancerules database component 1014 based upon heuristics or empiricalobservations. A set of retrieval candidates 1030 is provided to acandidate selector 1032 for further processing.

The candidate selector 1032 is illustrated in more detail in FIG. 11.The set of retrieval candidates 1030 includes one or more candidates1104-1108. A retrieval candidate 1104-1108 includes a reference 1110 andmay also include other information fields 1112-1116 that may be used bythe candidate retrieval component 812 to determine the potentialrelevance of the reference to the query. For example, a semanticinformation field 1112 may include information about the semantic rolesof words found within the sentence and the context in which those wordsare found. Other useful information might include a retrieval scorefield 1114 that maintains the retrieval score assigned by the relevantscoring component 1010 and a data/meta-data field 1116 that couldcontain information such as the location of words within a passage andtheir proximal relation to each other. The information 1110-1116associated with a retrieval candidate 1104 provides the basis for theoperation of filters provided by a filtering component 1120. Some of thesemantic information associated with the semantic information field 1112may be specifically flagged for inclusion 1122 or exclusion 1124. Forexample, a term recognized as a proper name may be specifically flaggedfor inclusion, while a term of known irrelevant context may bespecifically excluded. The filtering component 1120 may also recognizedthe presence 1126 or absence 1128 of specific key terms 1130-1132 (ortokens within those key terms). Other filters 1136 to determine therelevance of the passage 1110 may be added to the filtering component1120.

The selection of candidates to include in a match candidate set 1150 maybe further subject to a relevance predictor component 1140. Therelevance predictor component 1140 analyzes the retrieval scores 1142and possibly refines the filtering of the retrieval candidates 1030based upon heuristically tuned thresholds. The relevance predictorcomponent 1140 may also apply conventional relevance indicators such asan inverse reference count 1144 or other empirically determinedrelevance predictors 1146. The candidate selector 1032 generates a setof match candidates 1150 that includes a filtered set of matchcandidates 1152 for a more complete, and computationally expensive,semantic match performed in the match phase (FIG. 13). Each matchcandidate 1150 may maintain any or all of the information 1154-1160associated with it during the retrieval phase. For example, theretrieval score 1158 may be used as a component of a final match score.

The candidate retrieval component 812 is adjusted to improve performanceover time by the heuristic retrieval tuner 816 that is shown infunctional block form in FIG. 12. The heuristic tuner 816 adjusts theanalysis provided by such components as the relevance score 1010 (FIG.10), the filtering component 1120, and the relevance predictor component1140 (FIG. 11). A match success regression component 1202 monitors andcomputes regressions of the success of match candidates 1204 beingsuccessfully matched in the match phase and potentially through to thesearch retrieval. The heuristic retreival tuner 816 maintains retrievalmetrics 1208. The heuristic retrieval tuner 816 also monitors andadministers a set of retrieval goals 1210. For example, the goals mightinclude: retrieval of certain search terms 1212; minimum relevancescores 1214; the inclusion of tokens or search terms deemed necessary1216; the inclusion of tokens or search terms deemed significant 1218;the inclusion of certain terms 1220; providing a minimum number ofretrieval candidates in the set 1222; providing a maximum number ofsearch candidates 1224; or other goals 1226. As the heuristic retrievaltuner 816 determines the success of the candidate retrieval against thesearch retrieval goals 1210, or the determination of the match successregression component 1202, the heuristic retrieval tuner 816 may forwardthe match candidate set to the match phase or alternatively triggers aretrieval iteration 1240. A retrieval iteration 1240 might progressivelyloosen the search criterion to retrieve a broader retrieval candidatesset, as indicated by the loop 820 shown in FIG. 8.

Matching Phase

An exemplary matching phase 1300 is illustrated in functional block formin FIG. 13. During the matching phase 1300, the semantic representations1304 generated for the match candidates 1302 are compared to thesemantic representation 1308 of a query 1306 by a match component 1310.The match candidates 1302 are obtained from the retrieval phase (FIGS.8-11). The semantic representation 1304 associated with each of thematch candidates 1302 may be retrieved from the semantic representationstorage 370 (FIG. 3), passed as part of the data 1116 associated with amatch candidate 1152, or generated as needed by a semanticrepresentation generator 204 (FIG. 3). Similarly, the semanticrepresentation 1308 associated with the query 1306 may be retrieved fromthe semantic representation storage 370 (FIG. 3), passed from theretrieval phase (FIG. 8) or generated as needed by a semanticrepresentation generator 204.

The match component 1310 performs matching and scoring operationsbetween the semantic representations 1304 and 1308. These operations mayinclude unification operations. The result of the match may be reportedas a set of search result passages, a match score or other metric. Aresult scoring component 1320 determines a result score for each of thematch candidates 1302 based upon the alignment of the semanticrepresentations 1304 and 1308. In an embodiment, the match component1310 generates a match score 1490, which is combined with the retrievalscore 1158 to provide a result score for each of the match candidates1302. The result scores determined by the result-scoring component 1320are reviewed and potentially serve as input to a heuristic tunercomponent 1330. In an embodiment, the heuristic tuner component 1330 isa part of the same component used in the retrieval phase discussed withreference to FIG. 12. The heuristic tuner component 1330 may adjust thematch component 1310 or interact with the retrieval phase, for instance,by adjusting retrieval criterion and triggering a retrieval iteration1240. A search result component 1340 selects the search resultreferences or passages to return in response to the query. A searchresult formatter 1350, may format the search result references orpassages according to presentation filters. For example, references or“links” to the passages may be ordered according to result scores.

Turning to FIG. 14, the match component 1310 obtains a semanticrepresentation 1410 for each match candidate and also obtains thesemantic representation of the query 1412. The match unificationcomponent 1420 includes a substructure selector component 1430 thatselects from among the many substructures 332 present in a semanticrepresentation 330 (FIG. 3). Some or all of the substructures 332 may beselected for the unification process.

A substructure alignment component 1450 applies alignment rules 1452 andmatch criterion 1454 to the substructures selected by the substructureselector component 1430. Generally in a unification process, a filterbinds corresponding terms from each pair of predicate-argument relationsthat pass a matching criterion. The alignment can be as simple as anintersection 1456 or can apply other 1458 higher order analysis. Forexample, the matching criteria 1454 can compare string tokens or computesemantic distance by comparing ontological hierarchies associated witheach terms. Certain terms, such as interrogatives, may be allowed tomatch freely, while other sentence forms could be discounted.

The substructure alignment component 1450 provides the alignment resultsto a substructure alignment scorer 1470. The substructure alignmentscorer 1470 applies scoring criterion 1472-1480 to the match results.For example, the percentage of substructures that align 1472 mayindicate a proportional score, while a particularly high score may beassigned to a unique binding of all terms in all relations from thequery semantic representation with the corresponding terms in the samerelations from the passage semantic relations. A semantic distancecomputation 1474 may assign higher scores to relationships that arecloser than to those that are more distant. A failure to matchcomputation 1476 could decrease scores based on the absence of terms orsemantic relationships.

The alignment of certain types of semantic terms or relationships mayalso be assigned. For instance, drawing from a semantic type score table1478, a scoring component might rates a close synonym of a noun in thesubject role as a more reliable indicator of relevance than a distanthypernym of a noun in the object role. The values and relationshipsassociated with the semantic type score table 1478 may be stored in aseparate database in order to enable empirically-based tuning of thematch scores. Other scoring computations 1480 are possible. Methods andsystems for match unification and scoring are further described inCrouch, referenced above and incorporated herein. The match component1310 produces a match score 1480 to indicate the relative success of thematching process.

Various of the above-disclosed and other features and functions, oralternatives thereof, may be desirably combined into many otherdifferent systems or applications. While the methods and the systemshave been illustrated in many cases using functional block or flowdiagrams to provide a clear description of reasonable length, it shouldbe noted that these diagrams may unnecessarily imply that what isdescribed is sequential in nature. Many times, however, the actualsequence is unimportant. For the sake of brevity, all permutationspossible for minor implementation details are not described, but arefully intended to be included in the spirit in scope of the descriptionof the specification. Further, the claims can encompass embodiments inhardware, software, or a combination thereof. Various presentlyunforeseen or unanticipated alternatives, modifications, variations, orimprovements therein may be subsequently made by those skilled in theart, which are also intended to be encompassed by the following claims.

1. A method for information search, comprising: generating a semanticindex key term including at least one semantic index token representinga semantic relationship; associating the semantic index key term with atleast one reference to an information passage; and generating aninverted index comprising at least one semantic index key term indexedagainst the at least one reference to each associated informationpassage.
 2. The method of claim 1, further comprising: obtaining asearch query; generating a semantic query key term including at leastone semantic query token representing a semantic relationship derivedfrom the search query; querying the inverted index with the semanticquery key term; and receiving a set of references to informationpassages associated with the semantic index key term corresponding tothe semantic index key term indexed by the inverted index.
 3. The methodof claim 2, further comprising: obtaining a semantic representation ofthe information passage, the semantic representation of the informationpassage comprising at least one semantic substructure; the semanticsubstructure comprising at least one predicate-argument relation;generating the semantic index token from at least one semanticsubstructure; and generating the semantic query key term including atleast one semantic index token.
 4. The method of claim 3, furthercomprising: obtaining a semantic representation of the search query, thesemantic representation of the search query comprising at least onesemantic substructure; the semantic substructure comprising at least onepredicate-argument relation; generating the semantic query token basedupon at least one semantic substructure; and generating the semanticquery key term including at least one semantic index token.
 5. Themethod of claim 4, further comprising: determining a set of candidateinformation passages from the set of references to information passages;matching the semantic representation of the information passage with thesemantic representation of the search query for at least one member ofthe set of candidate information passages to generate a match result;generating a filtered search result set by filtering the set ofcandidate information passages based at least in part upon the matchresult; and returning the filtered search result set.
 6. The method ofclaim 5, wherein determining the set of candidate information passagesfurther comprises: determining a retrieval weight for at least onesemantic query token; and selecting members of the set of candidateinformation passages based at least in part on the retrieval weightsassigned to the semantic query tokens.
 7. The method of claim 6, furthercomprising: heuristically tuning the retrieval weights assigned to thesemantic query tokens.
 8. The method of claim 6, further comprising: thesemantic query token includes a token type; and assigning the retrievalweight based at least in part upon the token type.
 9. The method ofclaim 6, further comprising: heuristically tuning the determination ofthe set of candidate information passages.
 10. A system for informationsearch, comprising: a semantic index key term transform component; and asemantic index key term indexer component.
 11. The system of claim 10,further comprising: a semantic query key term transform component; and acandidate retrieval component.
 12. The system of claim 11, wherein thecandidate retrieval component further comprises a candidate selectorcomponent.
 13. The system of claim 12, wherein the candidate retrievalcomponent further comprises a candidate scoring component.
 14. Thesystem of claim 12, further comprising a heuristic candidate selectiontuner.
 15. The system of claim 14, further comprising a semantic matchcomponent.
 16. The system of claim 15, wherein the semantic matchcomponent further comprises a semantic match unification component. 17.The system of claim 16, wherein the semantic match component furthercomprises a semantic match scoring component.
 18. The system of claim17, further comprising a heuristic match tuner component.
 19. Acomputer-readable media including program instructions for performing amethod, comprising: generating a semantic index key term including atleast one key token representing a semantic relationship; associatingthe semantic index key term with at least one reference to aninformation passage; and generating an inverted index comprising atleast one semantic index key term indexed against the at least onereference to the associated information passages.
 20. Acomputer-readable media including program instructions for performing amethod, comprising: obtaining a search query; generating a semanticquery key term including at least one semantic query token representinga semantic relationship derived from the search query; accessing aninverted index comprising at least one semantic index key term indexedagainst the at least one reference to an associated information passage,the semantic index key term including at least one semantic index tokenrepresenting a semantic relationship; querying the inverted index withthe semantic query key term; and receiving a set of references toinformation passages associated with the semantic query key termcorresponding to the semantic index key term indexed by the invertedindex.
 21. The computer-readable media of claim 20, further comprisingprogram instructions for: determining a set of candidate passages fromthe set of references to information passages associated with thesemantic query key term obtained from the inverted index, comprising:determine a relevance score for at least one semantic query tokenmatching a semantic index token; and filtering the set of candidateinformation passages based at least in part upon the relevance score;and returning the filtered set of candidate information passages as aset of match candidates.
 22. The computer-readable media of claim 21,further comprising program instructions for: obtaining a semanticrepresentation of the search query, the semantic representation of thesearch query comprising at least one semantic substructure; generating asemantic query token from at least one semantic substructure; thesemantic query key term including at least one semantic query token;obtaining a semantic representation of the information passage, thesemantic representation of the information passage comprising at leastone semantic substructure; matching the semantic representation of theinformation passage with the semantic representation of the search queryfor at least one member of the set of match candidates; filtering theset of match candidates based at least in part upon the match result;and returning the filtered set of match candidates as a search resultset.